iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0

處理使用者互動

延續上次的內容,這次我們要介紹的章節是 「處理使用者互動」
在前端開發中,處理使用者互動其實就是 監聽並回應使用者操作事件

在 Vue 中,我們通常使用 v-on 指令來進行事件監聽與處理。
為了簡化書寫,開發者也常以 「@」 作為 v-on 的縮寫,例如:

<!-- 使用 v-on -->
<button v-on:click="handleClick">點擊我</button>

<!-- 使用縮寫 @ -->
<button @click="handleClick">點擊我</button>
  • 首先,先練習一個簡單的事件監聽範例:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件綁定</title>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>    
<body>
    <div id="Application">
        <div>點擊次數:{{count}}</div>
        <button @click="click">點擊</button>
    </div>
    <script>
        const App = {
            data() {
                return {
                    count:0
                }
            },
            methods: {
                click() {
                    this.count += 1
                }
            }
        }
        Vue.createApp(App).mount("#Application")
    </script>
</body>
</html>
  • 在瀏覽器上執行這個程式,當點擊頁面中的按鈕,就會執行click函數以改變count屬性的值,且可以在頁面上及時地看到變化。
    https://ithelp.ithome.com.tw/upload/images/20250915/20169282g0qohtSXB7.png
  • 點擊按鈕改變count屬性的值
    https://ithelp.ithome.com.tw/upload/images/20250915/20169282c4UPZRarYG.png
  • 除了以上這種綁定方法函數,你也可以直接將要執行的邏輯放入@click賦值的地方:
<button @click="this.count += 1">點擊</button>

也可以達到一樣的效果,但通常事件的處理方法都不是單行的script就可以搞定的。

  • 在上面的程式中,定義的 click 函數並沒有參數,實際上當觸發我們綁定的事件函數時,系統會自動將當前的Event 物件傳遞到函數中,如果我們需要使用此 Event 物件,定義的處理函數往往是下面的樣子:
click(event) {
    console.log(event)
    this.count += 1
}
  • Event物件中會儲存當前事件的很多資訊,例如:事件類型、滑鼠位置、鍵盤按鍵等。
    以計步器為例:
click(step) {
    this.count += step
}
  • 進行事件綁定時,可採用內聯處理的方式設定參數:
<button @click="click(2)">點擊</button>
  • 這樣一來,點擊頁面上的按鈕時,計數器將以2為步進值進行增加。
    https://ithelp.ithome.com.tw/upload/images/20250915/20169282g7J8RmDtwg.png
    點擊後:
    https://ithelp.ithome.com.tw/upload/images/20250915/20169282V5l1Ub6l5q.png

  • 今天就先到這邊,明天接著來介紹多事件處理!

下一篇
Day 2
系列文
從零開始學習TypeScript、Vue.js !!4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言